package com.py.framework.service;

import com.py.framework.entity.MenuEntity;
import com.py.framework.entity.RoleEntity;

import java.util.List;
import java.util.Map;

/**
 * 菜单资源Service
 *
 * @author Leegern
 * @date 2018年4月23日
 */
public interface IntegrationMenuResourceService {

    /**
     * 分页插叙菜单资源列表信息
     *
     * @param params
     * @return
     */
    List<MenuEntity> queryMenuResourceForPage(Map<String, Object> params);

    /**
     * 根据父Id查询所有子节点数据
     *
     * @param parentId 父Id
     * @return
     */
    List<MenuEntity> getMenuResourceByParentId(String parentId);

    /**
     * 根据菜单类型查询菜单资源数据
     *
     * @param menuType 菜单类型，1：子系统，2：模块，3：功能，4：资源
     * @return
     */
    List<MenuEntity> getMenuResourceByMenuType(int menuType);

    /**
     * 根据Id查询菜单资源实体
     *
     * @param id 菜单资源Id
     * @return
     */
    MenuEntity findOneMenuResource(long id);

    /**
     * 根据LINK_URL查询MENU_NAME
     *
     * @param linkUrl 短连接
     * @return
     */
    MenuEntity getMenuNameByLinkURL(String linkUrl);

    /**
     * 添加菜单资源实体
     *
     * @param entity
     * @return
     */
    int addMenuResourceInfo(MenuEntity entity);

    /**
     * 更新菜单资源信息
     *
     * @param entity
     * @return
     */
    int updateMenuResource(MenuEntity entity);

    /**
     * 批量删除菜单资源
     *
     * @param ids 菜单资源Id集合
     * @return
     */
    int batchDelMenuResource(List<Long> ids);

    /**
     * 获取用户菜单资源数据
     *
     * @param userId 用户Id
     * @return
     */
    List<MenuEntity> getUserMenuResources(long userId);

    /**
     * 获取当前用户菜单资源集合
     *
     * @param jdToken 用户令牌
     * @return
     */
    List<MenuEntity> getCurrentUserMenuResources(String jdToken) throws Exception;

    /**
     * 根据角色Id获取政务一体化网站资源关联数据
     * @param roleId 角色Id
     * @return
     */
    List<RoleEntity> getIntegrationMenuRelate(long roleId);

    /**
     * 修改政府一体化菜单信息
     * @param datas 数据集合
     * @return
     */
    int modifyRegionMenuRelate(List<RoleEntity> datas);
    
    int isResourceInfo(long roleId,String url);
}